import request from '@/utils/request'

/**
 * 用户管理API接口
 */

/**
 * 分页查询用户列表
 * @param {Object} params - 查询参数
 * @param {string} params.username - 用户名
 * @param {string} params.email - 邮箱
 * @param {number} params.status - 状态
 * @param {number} params.page - 页码
 * @param {number} params.size - 每页大小
 * @returns {Promise} 用户列表数据
 */
export const getUserList = (params) => {
  return request({
    url: '/users/page',
    method: 'get',
    params
  })
}

/**
 * 分页查询用户列表（别名方法）
 * @param {Object} params - 查询参数
 * @param {string} params.username - 用户名
 * @param {string} params.email - 邮箱
 * @param {number} params.status - 状态
 * @param {number} params.current - 页码
 * @param {number} params.size - 每页大小
 * @returns {Promise} 用户列表数据
 */
export const getUserPage = (params) => {
  return request({
    url: '/users/page',
    method: 'get',
    params
  })
}

/**
 * 获取所有启用的用户
 * @returns {Promise} 用户列表数据
 */
export const getAllEnabledUsers = () => {
  return request({
    url: '/users/enabled',
    method: 'get'
  })
}

/**
 * 根据ID获取用户详情
 * @param {number} id - 用户ID
 * @returns {Promise} 用户详情数据
 */
export const getUserById = (id) => {
  return request({
    url: `/users/${id}`,
    method: 'get'
  })
}

/**
 * 新增用户
 * @param {Object} data - 用户数据
 * @param {string} data.username - 用户名
 * @param {string} data.password - 密码
 * @param {string} data.email - 邮箱
 * @param {string} data.phone - 手机号
 * @param {string} data.realName - 真实姓名
 * @param {number} data.status - 状态
 * @returns {Promise} 操作结果
 */
export const createUser = (data) => {
  return request({
    url: '/users',
    method: 'post',
    data
  })
}

/**
 * 更新用户
 * @param {number} id - 用户ID
 * @param {Object} data - 用户数据
 * @param {string} data.username - 用户名
 * @param {string} data.email - 邮箱
 * @param {string} data.phone - 手机号
 * @param {string} data.realName - 真实姓名
 * @param {number} data.status - 状态
 * @returns {Promise} 操作结果
 */
export const updateUser = (id, data) => {
  return request({
    url: `/users/${id}`,
    method: 'put',
    data
  })
}

/**
 * 删除用户
 * @param {number} id - 用户ID
 * @returns {Promise} 操作结果
 */
export const deleteUser = (id) => {
  return request({
    url: `/users/${id}`,
    method: 'delete'
  })
}

/**
 * 切换用户状态
 * @param {number} id - 用户ID
 * @param {number} status - 状态
 * @returns {Promise} 操作结果
 */
export const toggleUserStatus = (id, status) => {
  return request({
    url: `/users/${id}/status`,
    method: 'put',
    data: { status }
  })
}